
import java.util.*;
import java.io.*;


/**
 * author cristhy
 */

public class Diccionario {

    /**
     *  Mapa que almacena las palabras del diccionario.
     *  La clave es la palabras .
     *  El valor el significado.
     */
    private Map<String,String> tabla;


    /**
     *  Crea el diccionario.
     */
    public Diccionario() {

	tabla = new HashMap<String,String>();

	// Relleno el diccionario con las palabras en ei.txt
	try {
	    cargaFichero("d.txt");
	}
	catch (Exception e) {
	    System.err.println("No puedo crear el diccionario");
	    System.err.println("  Razon: "+e.getMessage());
	    System.exit(1);
	}
    }
     
   public void agregar(String n,String m)
   {
       tabla.put(n, m);
       tabla.put(m, n);
   }
    private void cargaFichero(String fichero) throws Exception {
	// crea un scanner para leer el fichero
	Scanner scanner = new Scanner(new FileInputStream(fichero));
	
	String p1; // palabra original
	String p2; // palabra traducida

	// lee todo el fichero
	while (scanner.hasNext()) {
	    p1 = scanner.next();
	    if (!scanner.hasNext()) break;
	    p2 = scanner.next();
	    tabla.put(p1.toLowerCase(),p2);
	}
	
	// cerrar el scanner
	scanner.close();
    }
    

    /**
     *  Buscamos el significado de una palabra, sinonimo
     */
    public String buscar(String p) {

	String p2 = tabla.get(p.toLowerCase());

	return p2==null ? p : p2;
    }
    public static void main(String[] args){
        Diccionario d = new Diccionario();
       System.out.print( d.buscar("cielo"));
       d.agregar("zapato", "calzado");
       d.agregar("zapato", "calzados");
       System.out.print( d.buscar("zapato"));
       
       
        
    }
    
}